Controllable conditional image generation

ABSTRACT

A first generator stage of an image synthesis computer system generates an intermediate representation of an image that captures high-level structure of the image. The intermediate representation is generated from a random noise sample and without specific condition provided for the image. A second generator stage of the image synthesis computer system generates a conditional image based on i) the intermediate representation of the image and ii) a condition provided for the image, the condition specifying a desired style for the image. As a result, the conditional image is generated to match i) the high-level structure captured in the intermediate representation of the image and ii) the desired style specified by the condition provided for the image.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to image generation and, more particularly, to conditional image generation using neural networks.

BACKGROUND

Computer image synthesis or generation refers to a process of generating realistic images of objects, landscapes, people, faces, and the like. For example, neural networks, such as deep generative neural networks, may be employed in image generation in various applications such as generating super-resolution images from low resolution images, image in-painting, text-to-image synthesis, attribute-to-face synthesis and the like. Such neural network systems may generate images by random sampling, or may generate conditional images that match specific conditions. Conditional image generation may find use in many diverse applications, such as in forensics applications where an image of a face of a suspect may be generated to match a description of the suspect; in education or research applications, where fine-grained images of, for example, birds may be generated to match specific descriptions of the birds; and so on. Current image generations systems, however, lack ability to generate sufficiently diverse image and/or are unable to produce images with sufficiently high fidelity. Moreover, current image generation systems are not controllable in that they lack ability to sample images by controlled change of factors such as posture, style, background, fine-grained details, and the like.

SUMMARY

In an embodiment, a method for synthesizing an image includes generating, using a first generator stage of an image synthesis computer system, an intermediate representation of an image, wherein the intermediate representation captures high-level structure of the image, and wherein the intermediate representation is generated from a random noise sample and without specific condition provided for the image. The method additionally includes generating, using a second generator stage of the image synthesis computer system, a conditional image, wherein the conditional image is generated based on i) the intermediate representation of the image generated by the first generator stage and ii) a condition provided for the image, the condition specifying a desired style for the image, such that the conditional image is generated to match i) the high-level structure captured in the intermediate representation of the image and ii) the desired style specified by the condition provided for the image.

In another embodiment, an image synthesis computer system comprises a first generator stage configured to generate an intermediate representation of an image, wherein the intermediate representation captures high-level structure of the image, and wherein the intermediate representation is generated from a random noise sample and without specific condition provided for the image. The image synthesis computer system additionally comprises a second generator stage configured to generate a conditional image, wherein the conditional image is generated based on i) the intermediate representation of the image and ii) a condition provided for the image, the condition specifying a desired style for the image, such that the conditional image is generated to match i) the high-level structure captured in the intermediate representation of the image and ii) the desired style specified by the condition provided for the image.

In still another embodiment, a tangible computer readable medium, or media, storing machine readable instructions that, when executed by one or more processors, cause the one or more processors to: generate an intermediate representation of an image, wherein the intermediate representation captures high-level structure of the image, and wherein the intermediate representation is generated from a random noise sample and without specific condition provided for the image; and generate a conditional image, wherein the conditional image is generated based on i) the intermediate representation of the image and ii) a condition provided for the image, the condition specifying a desired style for the image, such that the conditional image is generated to match i) the high-level structure captured in the intermediate representation of the image and ii) the desired style specified by the condition provided for the image.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example controllable conditional image synthesis system, according to an embodiment;

FIG. 2 is a block diagram of an example controllable image synthesis system corresponding to the controllable conditional image synthesis system of FIG. 1 and showing training components used in training of the image synthesis system of FIG. 1, according to an embodiment;

FIG. 3 is an illustration of a training algorithm that may be utilized to train image synthesis systems of FIGS. 1 and 2, according to embodiments;

FIGS. 4A-4C are illustrations of several controllable aspects of the image synthesis system FIG. 1, according to embodiments;

FIG. 5 is a flow diagram illustrating an example method for generating images that may be implemented by the image synthesis system of FIG. 1, according to an embodiment; and

FIG. 6 is a block diagram of a computer system suitable for implementing one or more components of the images synthesis system of FIG. 1, according to an embodiment.

DETAILED DESCRIPTION

In various embodiments described below, an image synthesis systems synthesizes or generates desired images that match certain conditions, such as user-provided conditions, describing specific aspects or features of the images. In an embodiment, the image synthesis system separates the process of generating an image into multiple generator stages including i) a first generator stage that generates an intermediate representation of the image, defining a structure (e.g., outline, shape, posture, etc.) of the image and/or of an object depicted in the image and ii) a second generator stage that generates a conditional image based on a) the intermediate representation of the image and b) an input condition defining a style (e.g., fine-grained appearance of foreground and/or background) of the image. Accordingly, in an embodiment, the first generator stage is an unconditional generator stage configured to generate an intermediate representation of an image, and the second generator stage is a conditional generator that may transform the intermediate representation of the image into a final conditional image that matches a condition provided for the image.

The first generator stage and the second generator stage may each comprise one or more neural network, such as one or more deep convolutional neural network, for example. The one or more neural networks of the first generator stage may be trained to generate unconditional images from noise samples and without any specific conditions provided for the images, and the one or more neural networks of the second generator stage may be trained to generate conditional images to match specific conditions provided for the images. Because the first generator stage is generally an unconditional image generation stage and the second generator stage is generally a conditional image generation stage, the neural networks of the first generator stage and the second generator stage may be trained using semi-supervised training with both unsupervised training that utilizes unpaired or unlabeled training data and supervised training that utilizes paired or labeled training data. For example, the first generator stage may be trained using unsupervised training with an unpaired training dataset containing unpaired or unlabeled images of a target object or scene, and the second generator stage may be trained using supervised training with a paired training dataset containing images of the target object or scene paired or labeled with conditions defining specific features or styles of the object or scenes.

Such separation of image generation into multiple generator stages, including an unconditional generator stage and a conditional generator stage, may allow the image synthesis system to be trained to generate diverse images with high fidelity and high controllability, in various embodiments. For example, because larger unpaired datasets may be available for training the unconditional generator stage, a better intermediate representation defining a structure of an image may be learned, and higher-fidelity conditional images may be ultimately generated as compared images generated by image synthesis systems in which only supervised training is used. As another example, with respect to diversity and controllability, by fixing an intermediate representation of an image generated by the unconditional generator stage while varying style conditions provided to the conditional generator stage, the image synthesis system may generate diverse images having a same structure (e.g., a same shape, a same posture, etc.) but with varying styles (e.g., varying colors, varying features, etc.). The image synthesis system may thus be controlled to generate images having a same structure and depicting interpolation between two or more style conditions, for example. As another example, by fixing both the intermediate representation of an image generated by the unconditional generator stage and style conditions for the image provided to the second generator stage, the image synthesis system may generate diverse images having a same structure and a same style by with varying degrees fine-grained details.

FIG. 1 is a block diagram of an example controllable conditional image synthesis system 100, according to an embodiment. The image synthesis system 100 includes a first generator stage 102 and a second generator stage 104. The first generator stage 102 includes an unconditional structure-prior generator 106. The unconditional structure-prior generator 106 may be initialized by a random noise sample z 108, which may be a noise vector taken, for example, from a normal (e.g., Gaussian) distribution, and may generate an intermediate representation M_(s) 110 of an image. The intermediate representation M_(s) 110 may capture high-level information for generating the image, and may generally define a structure (e.g., an outline, a shape, a posture, etc.) of the image. The intermediate representation M_(s) 110 may be provided to the second generator stage 104, and may be used as a structure-prior for generating a final conditional image by the second generator stage 104. The second generator stage 104 may include a conditional generator 105 that takes, as inputs, i) the intermediate representation M_(s) 110, generated by the structure-prior generator 106, defining a structure of the image and ii) a conditional input y 112 defining a desired style of the image, and generates a final conditional image 114 having the structure defined by the intermediate representation M_(s) 110 and the style defined by the conditional input y 112.

With continued reference to FIG. 1, the intermediate representation M_(s) 110 generated by the structure-prior generator 106 may additionally be provided to an unconditional generator 116 of the first generator stage 102, and the unconditional generator 116 may generate an unconditional image 118 having the structure defined by the intermediate representation M_(s) 110. Because the intermediate representation M_(s) 110 generated by the structure-prior generator 106 is used both i) within the first generator stage 102 and ii) by the second generator stage 104, the first generator stage 102 and the second generator stage 104 are essentially “fused” together into a single stage generator wherein the structure-prior generator 106 serves as a fused block used both i) for unconditional image generation by the first generator stage 102 and ii) for conditional image generation by the second generator stage 104, in an embodiment. It is noted that the unconditional generator 116 may be included in the first generator stage 102 for training the structure-prior generator 106 of the first generator stage 102, and may be omitted from the first generator stage 102 after completion of training of the first generator stage 102, in some embodiments.

Referring still to FIG. 1, as just an example, the image synthesis system 100 may be configured to generate an image of an object such as, for example, a bird, in an embodiment. In this embodiment, the structure-prior generator 106 of the first generator stage 102 may generate an intermediate representation M_(s) 110 defining an outline of a bird, including, for example, a shape and a posture of the bird. The conditional input y 112, provided to the second generator stage 104 may, in this case, be a text description of a desired style (e.g., bird size, beak length, wing shape, color, etc.) of the bird, for example. The second generator stage 104 may build on the intermediate representation M_(s) 110 defining the shape and posture of the bird to generate a conditional image 114 to match the desired bird size, beak length, wing shape, color, etc. specified by the conditional input y 112 for the bird. As another example, in another embodiment, the image synthesis system 100 may be configured to generate an image of a person or a face. In this embodiment, the structure-prior generator 106 of the first generator stage 102 may generate an intermediate representation M_(s) 110 defining an outline of the person or the face, including, for example, a shape and a pose of the person or the face. The conditional input y 112, provided to the second generator stage 106 may, in this case, be an attribute set describing desired features (e.g., hair color, eye color, presence of eyeglasses, presence of a smile, etc.) of the person or the face, for example. The second generator stage 106 may build on the intermediate representation M_(s) 110 defining the shape and pose of the person or face to generate a conditional image 114 of the person or face to match the desired features such as hair color, eye color, presence of eyeglasses, presence of a smile, etc., specified by the conditional input y 112 for the person or face, in an embodiment.

With continued reference to FIG. 1, the first generator stage 102 and the second generator stage 104 may comprise one or more neural networks, such as, for example, one or more deep convolutional neural networks. In an embodiment, the one or more neural networks of the first generator stage 102 and the second generator stage 104 may be trained using generative adversarial network (GAN) framework, or may be trained using other suitable training techniques. GAN framework or other technique may be employed to train the neural networks of the first generator stage 102 and the second generator stage 104 end-to-end using semi-supervised training, in an embodiment. In general, semi-supervised training involves training neural networks using both unsupervised training with unpaired or unlabeled training data and supervised training with paired or labeled training data. As described in more detail below, unsupervised training with unpaired or unlabeled training data may be employed to train the first generator stage 102 to generate the intermediate representation M_(s) 110 of an image, and supervised training with paired or labeled training data may be employed to train the second generator stage 104 to generate the conditional image 114 based on the intermediate representation M_(s) 110 of the image. Because semi-supervised training relies on unpaired data to train the first generator stage 104 to generate the intermediate representation M_(s) 110, a better intermediate representation M_(s) 110 is learned and ultimately a better final conditional image 114 is generated, in at least some embodiments, compared to systems in which only supervised learning is employed to train neural networks for generating conditional images. For example, a better intermediate representation M_(s) 110 may be learned and ultimately a better final conditional image 114 may be generated because of greater availability of datasets with unpaired training data as compared to datasets with paired training data. Moreover, because an unconditional intermediate representation of an image generated by the first generator stage 102 is used as a structure-prior for conditional generation of the image by the second generator stage 104, less paired data may be needed an/or better learning may be achieved in training the second generator stage 104 to generate conditional images, in at least some embodiments, as compared to systems that do not generate an unconditional structure-prior for conditional image generation.

Referring still to FIG. 1, upon training of the first generator stage 102 for unconditional structure-prior generation and the second generator stage 104 for conditional image generation, the image synthesis system 100 may be utilized to generate high-fidelity and diverse image sets in a controllable manner, in various embodiments. For example, the image synthesis system 100 may be controlled to generate a set of images with a fixed structure and varying styles. This may be achieved by fixing the intermediate representation M_(s) 110 at the output of the structure-prior generator 106 of the first generator stage 102 and varying the conditional input y 112 provided to the conditional generator 105 of the second generator stage 104, so that images with the same fixed structure and the varying styles are generated. As just an example, the intermediate representation M_(s) 110 at the output of the structure-prior generator 106 may be fixed at a particular shape and posture of a bird. The conditional input y 112 may be varied to provide conditions such as i) “this bird has bright yellow body with brown on its crown and wings,” ii) “this bird is completely red with black wings and pointy beak,” ii) “this bird has wings that are brown and a white body,” iii) “a bird with bright yellow belly colors of orange on its tail and beak,” iv) “a small colorful bird with blue feathers covering most of its body except for its black tail,” and so on. With the fixed intermediate representation M_(s) 110 and the varied conditional input y 112, the image synthesis system 100 may generate a set of images depicting birds having the fixed particular shape and posture defined by the fixed intermediate representation M_(s) 110, with respective ones of the images depicting birds that match the respective styles specified by the respective conditional inputs y 112. As another example, both the intermediate representation M_(s) 110 and the conditional input y 112 may be fixed, and the image synthesis system 100 may be controlled to draw different samples around the conditional input y 112 to generate a set of images having the fixed structure and style, but with varying amount of fine-grained details, such as varying details in the background and/or the foreground of the images. As yet another example, the intermediate representation M_(s) 110 at the output at the output of the structure-prior generator 106 may be fixed, and the conditional input y 112 may be slowly varied between two or more different conditions to cause the image synthesis system 100 to generate a set of images interpolating between the two or more different conditions.

FIG. 2 is a block diagram of an image synthesis system 200 showing components used in training of an image synthesis system such as the image system 100 of FIG. 1, according to an embodiment. In an embodiment, the image synthesis system 200 corresponds to the image synthesis system 100 of FIG. 1. In other embodiments, the image synthesis system 200 is used to train image synthesis systems different from the image synthesis system 100 of FIG. 1. Similarly, the image synthesis system 100 of FIG. 1 is trained using training components different from the training components illustrated in FIG. 2, in some embodiments. For ease of explanation, the image synthesis system 200 is described below with reference to FIG. 1.

The image synthesis system 200 includes an unconditional generator stage 202 and a conditional generator stage 204. With reference to FIG. 1, the unconditional generator stage 202 corresponds to the first generator stage 102 and the conditional generator stage 204 corresponds to the second generator stage 104, in an embodiment. The unconditional generator stage 202 includes an unconditional generator G₁ 205 coupled to a discriminator D_(u) 206 to form an unconditional GAN for training the unconditional generator stage 202. Similarly, the conditional generator stage 204 includes a conditional generator G_(c) 207 (corresponding to the conditional generator 105 of FIG. 1) coupled to a discriminator D_(c) 208 to form a conditional GAN (CGAN) for training the conditional generator stage 204.

With continued reference to FIG. 2, the unconditional generator G₁ 205 may include a structure-prior generator G_(s) 210 (corresponding to the structure-prior generator 106 of FIG. 1) and an unconditional generator G_(u) 212. In an embodiment, the unconditional generator G₁ 205 comprises a generative neural network, such as a deep neural network, that implements a function G₁, which may be a differentiable function. The unconditional generator G₁ 205, and the corresponding function G₁, and be may be split into a structure-prior generative sub-network, and corresponding function G_(s), implemented by the structure-prior generator G_(s) 210 and an unconditional generative sub-network, and corresponding function G_(u), implemented by the unconditional generator G_(u) 212. The discriminator D_(u) 206 of the unconditional generator stage 202 may similarly comprise a neural network, such as a deep neural network, that implements a function D_(u), which may be a differentiable function. In training the unconditional generator stage 202, the unconditional generator G₁ 210 and the discriminator D_(u) 206 may be pitched against each other in a two-player min-max game in which the unconditional generator G₁ 210 tries to generate “fake” images that are as close as possible to real images, and the discriminator D_(u) 206 tries to differentiate between fake images generated by the generator G₁ 210 and real images provided as training data to the discriminator D_(u) 208. In an embodiment, training the first generator stage 202 may involve optimizing the min-max loss function:

$\begin{matrix} {{\min\limits_{G_{1}}{\underset{D_{u}}{\max \;}{V\left( {D_{u}G_{1}} \right)}}} = {{E_{x \sim p_{data}}\left\lbrack {\log \mspace{11mu} {D_{u}(x)}} \right\rbrack} + {E_{z \sim p_{z}}\left\lbrack {\log \left( {1 - {D_{u}\left( {G_{1}(z)} \right)}} \right)} \right\rbrack}}} & {{Equation}\mspace{14mu} 1} \end{matrix}$

The function G₁ in Equation 1 may be further decomposed into i) the function G_(s) that takes as an input a random noise sample z 212, which may be a noise vector taken, for example, from a normal (e.g., Gaussian) distribution, and generates an intermediate representation M_(s) 214 of a final unconditional image x_(u) 216

M _(s) =G _(s)(z)  Equation 2

and ii) the function G_(u) that takes as an input the intermediate representation M_(s) 214 and generates the final unconditional image x_(u) 216 using the intermediate representation M_(x) 214 as a structure-prior that dictates the structure (e.g., posture, shape, etc.) of the unconditional image x_(u) 216. Accordingly, the function G₁ in Equation 1 can be written as:

G ₁(z)=G _(u)(M _(s))  Equation 3

The intermediate representation M_(s) 214 of a final image may generally capture high-level information for generating the final image. For example, intermediate representation M_(s) 214 may capture a posture and structure of a bird, a shape of a face, etc., in various embodiments. Further, the intermediate representation M_(s) 214 is generally independent of any specific style desired for the final image, in an embodiment. Training of the unconditional generator stage 202 may therefore be performed in an unsupervised manner using only unpaired training data, such as only data containing images of target images (e.g., birds), in an embodiment. For example, unconditional generator stage 202 may be trained to generate realistic images of birds using a dataset containing real images of birds, without any pairing of the images with conditions or descriptions of the birds. As another example, the unconditional generator stage 202 may be trained to generate realistic images of faces using a dataset containing real and unlabeled images of faces of celebrities.

The intermediate representation M_(s) 214 generated by the unconditional generator stage 202 is provided to the conditional generator stage 204 and is used in training the conditional generator G_(c) 207 of the conditional generator stage 204. In addition to the conditional generator G_(c) 207, the conditional generator stage 204 includes an encoder 218 and a concatenate block 220. The encoder 218 may receive, as an input, a condition y 223 which may be, for example, in the form of text embedding, and may generate a tensor M_(y) 224. In an embodiment, the encoder 218 generates the tensor M_(y) 224 by performing condition augmentation of the condition y 223 using a sample of a latent variable c, which may be a sample taken, for example, from an independent Gaussian distribution. The latent variable c may then be repeated one or more times, if necessary, to match the spatial dimension of the intermediate representation M_(s) 214. The concatenate block 220 may receive, as a first input, the tensor M_(y) 224 generated by the encoder 218 and, as a second input, the intermediate representation M_(s) 214 generated by the unconditional generator stage 202, and may concatenate the tensor M_(y) 224 with the intermediate representation M_(s) 214 to generate a concatenated tensor M_(y) 226. The concatenate block 220 may, for example, comprise a convolutional block, such as, for example, a 3×3 convolutional block, and may perform tensor concatenation using the convolutional block. The concatenation block 220 may additionally perform batch normalization and/or apply a rely function to generate the concatenated tensor M_(y)M_(s) 226. The concatenated tensor M_(y)M_(s) 226 generated by the concatenate block 220 is provided to the conditional generator G_(c) 207. Taking the concatenated tensor M_(y)M_(s) 226 as an input, the conditional generator G_(c) 207 may generate the final conditional image x_(c) 228 to generally match both the structure defined by the intermediate representation M_(s) 214 and the style captured by the tensor M_(y) 224, in an embodiment.

Referring still to FIG. 2, the conditional generator G_(c) 207 may comprise a generative neural network, such as a deep neural network, implementing a function G_(c), which may be a differentiable function. Similarly, the discriminator D_(c) 208 may comprise a neural network, such as a deep neural network, that implements a function D_(c), which may be a differentiable function. In training the second generator stage 204, the conditional generator G_(s) 207 and the discriminator D_(c) 208 may be pitched against each other in a two-player min-max game in which the conditional generator G_(c) 207 tries to generate “fake” images conditioned on the condition y 223 that are as close to possible to real images that match the condition y 223, and the discriminator D_(c) 208 tries to differentiate between the fake images generated by the generator G_(c) 207 and real images paired with corresponding conditions provided as training data to the discriminator D_(c) 208. Training the second generator stage 204 may involve optimizing the min-max loss function:

$\begin{matrix} {{\min\limits_{G_{c}}{\underset{D_{c}}{\max \;}{V\left( {D_{c}G_{c}} \right)}}} = {{E_{x \sim p_{data}}\left\lbrack {\log \mspace{11mu} {D_{c}\left( {xy} \right)}} \right\rbrack} + {E_{z \sim p_{z}}\left\lbrack {\log \left( {1 - {D_{c}\left( {G_{c}\left( {{G_{u}(z)}y} \right)} \right)}} \right)} \right\rbrack}}} & {{Equation}\mspace{14mu} 4} \end{matrix}$

With continued reference to FIG. 2, in an embodiment, the unconditional generator stage 202 and the conditional generator stage 204 are trained concurrently end-to-end, wherein a loss function for training the unconditional generator stage 202, such as the loss function of Equation 1, is optimized concurrently with optimization of a loss function for training the conditional generator stage 204, such as the loss function of Equation 4. FIG. 3 illustrates a training algorithm 300 utilized for concurrently training the unconditional generator stage 202 and the conditional generator stage 204, according to an embodiment. The algorithm 300 may be implemented by the image synthesis system 200 with the following parameters. In training the unconditional generator stage 202: the noise vector z 212 is a vector z∈IR^(dx1) sampled from a normal distribution (i.e., z˜N(0,I)), where d is the dimensionality of the latent space; G_(s)(z,θ_(s)) is the function implemented by the structure-prior generator sub-network G_(s) 210 to generate the intermediate representation M_(S)∈IR^(s×s×k); G_(u)(M_(s),θ_(s)) is the function implemented by the unconditional generator sub-network G_(u) 212 to generate the final unconditional image x_(u) 216 using the intermediate representation M_(S) as a structure-prior input; and D_(u)(x,θ_(du)) is the function implemented by the discriminator D_(u) 206 to determine whether an image is a fake unconditional image x_(u) 216 or a real image x_(r) 217 that may be provided as training data to the discriminator D_(u) 206. In training the conditional generator stage 204: E(θ_(e),y) is the function implemented by the encoder 218 to encode the condition y 223, which may be in the form of text embedding, y∈IR^(p×1) to generate the tensor M_(y) 224, which may be the tensor My∈IR^(s×s×q); G_(c)(M_(y),M_(s),θ_(y)) is the function implemented by the conditional generator G_(c) 207 to generate the final “fake” conditional image x_(c) 228 using M_(y) concatenated with M_(s) as a structure-prior input; and D_(c)(x, y, θ_(dc)) is the function implemented by the discriminator D_(c) 208 to determine whether an image is a fake conditional image x_(c) that matches the condition y 223 or a real image x_(cr) with corresponding matching condition (x_(cr), y) 229 that may be provided as training data to the discriminator D_(c) 208. To generate the tensor M_(y) 224, the encoder 218 may perform condition augmentation to sample latent variable ĉ∈IR^(q×1) from an independent Gaussian distribution N(μ(y),Σ(y) around the text embedding. With such parameters, the training algorithm 300 may be used to train the unconditional generator stage 202 and the conditional generator stage 204 concurrently end-to-end in alternating steps until the convergence of the algorithm 300, in an embodiment. Parameters of the neural networks of the unconditional generator stage 202 and the conditional generator stage 204 may be updated in each step by optimizing the following combined objectives of the GAN of the unconditional generator stage 202 and the CGAN of the conditional generator stage 204:

L _(G) _(u) =log D _(u)(G _(u)(z))

L _(D) _(u) =log D _(u)(x)

L _(D) _(c) =log D _(c)(x,y)

L _(G) _(c) =log D _(c)(G _(c)(M _(y) ,M _(s)),y)+λD _(KL)(N(μ(y),Σ(y))N(0,I))  Equation 5

In various embodiments, an image synthesis system (e.g., the image synthesis system 100 of FIG. 1 or the image synthesis system 200 of FIG. 2) trained, for example as described above, to generate intermediate representations of images, and to generate conditional images based on intermediate representations generated for the images, may be operated to generate various sets of images containing predictable and controlled features and styles of the images. FIGS. 4A-4C are illustrations of several controllable aspects of an image synthesis system such as the image synthesis system 100 of FIG. 1 or the image synthesis system 200 of FIG. 2.

Referring first to FIG. 4A, the image synthesis system may generate a set of images 400, such as birds, having fixed structure, such as posture, but with varying style features, such varying colors or beak sizes, in this example scenario. To generate the set of images 400, an intermediate representation Ms may be generated based on a random sample z, which may be taken from a normal (e.g., Gaussian) distribution. The intermediate representation Ms may then be fixed, and varying conditions y may be provided to a conditional generator stage to generate the set of images 400 having fixed structure and varying styles.

Referring now to FIG. 4B, the image synthesis system may generate a set of images 420, such as birds, having fixed structure, such as posture, but with varying image details, such as varying bird styles and backgrounds, in this example scenario. Similar to the scenario of FIG. 4A, to generate the set of images 420, an intermediate representation M_(s) may be generated based on a random sample z, and the intermediate representation M_(s) may then be fixed. Unlike the scenario of FIG. 4A, however, in the scenario of FIG. 4B a condition y, such as a fixed text embedding, provided to the conditional generator stage may also be fixed. The conditional generator stage (e.g., an encoder 218 of the conditional generator stage) may generate varying tensors M_(y) around the fixed text embedding. The varying tensors M_(y) may be concatenated with the fixed intermediate representation M_(s), and the resulting varying concatenated tensors M_(y)M_(s) may be used as structure-priors to generate the set of images 420 having images with same structures and styles, but with different fine-grained details.

Referring now to FIG. 4C, the image synthesis system may generate a set of images 440, such as birds, having fixed structure, such as posture, with interpolation between two or more different styles, in this example scenario. In this scenario, an intermediate representation M_(s) may be generated by an unconditional generator stage based on a random sample z, and the intermediate representation M_(s) may then be fixed. A condition y provided to a conditional generator stage may then be slowly varied from a first style to a second such that the conditional generator stage generates the set of images 440 depicting interpolation from the first style to the second style.

FIG. 5 is a flow diagram of a method 500 for generating images in an image synthesis system, according to an embodiment. In an embodiment, the method 500 is implemented in conjunction with the image syntheses system 100 of FIG. 1 and/or image synthesis system 200 of FIG. 2. In other embodiments, the method 500 is implemented in conjunction with image synthesis systems different from the image synthesis system 100 of FIG. 1 and/or the training system 200 of FIG. 2.

At block 502, an intermediate representation of an image is generated by a first generator stage of the image synthesis system. The first generator stage may comprise an unconditional generator, and may generate the intermediate representation of the image by random sampling and without any specific condition provided for the image. The intermediate representation of the image may capture high-level information for generating the image. For example, the intermediate representation of the image may capture a structure, an outline, a shape, a posture, etc. of a target object in the image. In an embodiment, the first generator stage 102 of FIG. 1 generates the intermediate image. For example, the structure-prior generator 106 of the first generator stage 102 of FIG. 1 generates the intermediate representation of the image. In another embodiment, the structure-prior generator 206 of FIG. 2 generates the intermediate representation of the image. In other embodiments, the intermediate representation of the image is generated by other suitable generator components and/or in other suitable image synthesis systems.

At block 504, a conditional image is generated by a second generator stage of the image synthesis system based on the intermediate representation of the image generated at block 502 by the first generator stage. The second generator stage may comprise a conditional generator, and may generate the conditional image further based on a condition specified for the image. As a result, the conditional image may be generated to match i) the high-level structure captured in the intermediate representation of the image and ii) the desired style specified by the condition provided for the image. In an embodiment, the second generator stage 104 of FIG. 1 generates the conditional image. In another embodiment, the second generator stage 204 of FIG. 2 generates the conditional image. In other embodiments, the conditional image is generated by other suitable generator components and/or in other suitable image synthesis systems.

FIG. 6 is a block diagram of a computer system 600 suitable for implementing one or more embodiments of the present disclosure. In its most basic configuration, the computing system 600 may include at least one processor 602 and at least one memory 604. The computer system 600 may also include a bus (not shown) or other communication mechanism for communicating information data, signals, and information between various components of computer system 600. Components may include an input component 610 that processes a user action, such as selecting keys from a keypad/keyboard, selecting one or more buttons or links, etc., and sends a corresponding signal to the at least one processor 602. Components may also include an output component, such as a display, 611 that may display, for example, results of operations performed by the at least one processor 602. A transceiver or network interface 606 may transmit and receive signals between computer system 600 and other devices, such as user devices that may utilize results of processes implemented by the computer system 600. In one embodiment, the transmission is wireless, although other transmission mediums and methods may also be suitable.

The at least one processor 602, which can be a micro-controller, digital signal processor (DSP), or other processing component, processes these various signals, such as for display on computer system 600 or transmission to other devices via a communication link 618. The at least one processor 602 may also control transmission of information, such as cookies or IP addresses, to other devices. The at least one processor 602 may execute computer readable instructions stored in the memory 604. The computer readable instructions, when executed by the at least one processor 602, may cause the at least one processor 602 to implement processes associated with image generation and/or training.

Components of computing system 600 may also include at least one static storage component 616 (e.g., ROM) and/or at least one disk drive 617. Computer system 600 may perform specific operations by processor 612 and other components by executing one or more sequences of instructions contained in system memory component 604. Logic may be encoded in a computer readable medium, which may refer to any medium that participates in providing instructions to the at least one processor 602 for execution. Such a medium may take many forms, including but not limited to, non-transitory media, non-volatile media, volatile media, and transmission media. In various implementations, non-volatile media includes optical or magnetic disks, volatile media includes dynamic memory, such as system memory component 604, and transmission media includes coaxial cables, copper wire, and fiber optics. In one embodiment, the logic is encoded in non-transitory computer readable medium. In one example, transmission media may take the form of acoustic or light waves, such as those generated during radio wave, optical, and infrared data communications.

Some common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EEPROM, FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer is adapted to read.

In various embodiments of the present disclosure, execution of instruction sequences to practice the present disclosure may be performed by computer system 600. In various other embodiments of the present disclosure, a plurality of computer systems 600 coupled by communication link 618 to the network (e.g., such as a LAN, WLAN, PTSN, and/or various other wired or wireless networks, including telecommunications, mobile, and cellular phone networks) may perform instruction sequences to practice the present disclosure in coordination with one another.

Where applicable, various embodiments provided by the present disclosure may be implemented using hardware, software, or combinations of hardware and software. Also, where applicable, the various hardware components and/or software components set forth herein may be combined into composite components comprising software, hardware, and/or both without departing from the spirit of the present disclosure. Where applicable, the various hardware components and/or software components set forth herein may be separated into sub-components comprising software, hardware, or both without departing from the scope of the present disclosure. In addition, where applicable, it is contemplated that software components may be implemented as hardware components and vice-versa.

Software, in accordance with the present disclosure, such as program code and/or data, may be stored on one or more computer readable mediums. It is also contemplated that software identified herein may be implemented using one or more general purpose or specific purpose computers and/or computer systems, networked and/or otherwise. Where applicable, the ordering of various steps described herein may be changed, combined into composite steps, and/or separated into sub-steps to provide features described herein.

While various operations of an image synthesis system have been described herein in terms of “modules” or “components,” it is noted that that terms are not limited to single units or functions. Moreover, functionality attributed to some of the modules or components described herein may be combined and attributed to fewer modules or components. Further still, while the present invention has been described with reference to specific examples, those examples are intended to be illustrative only, and are not intended to limit the invention. It will be apparent to those of ordinary skill in the art that changes, additions or deletions may be made to the disclosed embodiments without departing from the spirit and scope of the invention. For example, one or more portions of methods described above may be performed in a different order (or concurrently) and still achieve desirable results. 

What is claimed is:
 1. A method for synthesizing an image, the method comprising generating, using a first generator stage of an image synthesis computer system, an intermediate representation of an image, wherein the intermediate representation captures high-level structure of the image, and wherein the intermediate representation is generated from a random noise sample and without specific condition provided for the image; and generating, using a second generator stage of the image synthesis computer system, a conditional image, wherein the conditional image is generated based on i) the intermediate representation of the image generated by the first generator stage and ii) a condition provided for the image, the condition specifying a desired style for the image, such that the conditional image is generated to match i) the high-level structure captured in the intermediate representation of the image and ii) the desired style specified by the condition provided for the image.
 2. The method of claim 1, wherein: the first generator stage comprises an unconditional generative neural network, and the second generator stage comprises a conditional generative neural network.
 3. The method of claim 2, wherein the unconditional generative neural network comprises i) a structure-prior generative sub-network trained to generate the intermediate representation of the image and ii) an unconditional generative sub-network trained to generate an unconditional image based on the intermediate representation of the image.
 4. The method of claim 2, further comprising training the unconditional generative neural network using an unconditional generative adversarial network (GAN), and training the conditional generative neural network using a conditional generative adversarial network (CGAN).
 5. The method of claim 2, further comprising training the unconditional generative neural network and the conditional generative neural network concurrently using semi-supervised training, wherein the unconditional generative neural network is trained using unpaired data and the conditional generative neural network is trained using paired data.
 6. The method of claim 1, wherein the method further comprises concatenating the intermediate representation with a tensor representing a sample drawn around the condition provided for the image, and generating the conditional image includes using the concatenated intermediate representation with the tensor as a structure-prior for generating the conditional image.
 7. The method of claim 1, further comprising fixing the intermediate representation, and generating a set of conditional images, wherein respective conditional images in the set of conditional images are generated based on i) the fixed intermediate representation of the image and ii) one or both of a) respective varying conditions provided for the respective conditional images and b) respective samples drawn around a fixed condition provided for the conditional images.
 8. The method of claim 1, wherein the condition provided for the image comprises one of i) a text description of the desired style for the image and ii) an attribute set having one or more attributes defining the desired style of the image.
 9. An image synthesis computer system, comprising: a first generator stage configured to generate an intermediate representation of an image, wherein the intermediate representation captures high-level structure of the image, and wherein the intermediate representation is generated from a random noise sample and without specific condition provided for the image; and a second generator stage configured to generate a conditional image, wherein the conditional image is generated based on i) the intermediate representation of the image and ii) a condition provided for the image, the condition specifying a desired style for the image, such that the conditional image is generated to match i) the high-level structure captured in the intermediate representation of the image and ii) the desired style specified by the condition provided for the image.
 10. The image synthesis computer system of claim 9, wherein: the first generator stage comprises an unconditional generative neural network, and the second generator stage comprises a conditional generative neural network.
 11. The image synthesis computer system of claim 10, wherein the unconditional generative neural network comprises a structure-prior generative sub-network trained to generate the intermediate representation of the image and an unconditional generative sub-network trained to generate an unconditional image based on the intermediate representation of the image.
 12. The image synthesis computer system of claim 10, wherein the unconditional generative neural network is trained using an unconditional generative adversarial network (GAN), and the conditional generative neural network is trained using a conditional generative adversarial network (CGAN).
 13. The image synthesis computer system of claim 10, wherein the unconditional generative neural network and the conditional generative neural network are trained concurrently using semi-supervised training, wherein the unconditional generative neural network is trained using unpaired data and the conditional generative neural network is trained using paired data.
 14. The image synthesis computer system of claim 10, wherein the second generator stage is further configured to concatenate the intermediate representation with a tensor representing a sample drawn around the condition provided for the image, and generate the conditional image includes using the concatenated intermediate representation with the tensor as a structure-prior for generating the conditional image.
 15. The image synthesis computer system of claim 9, wherein the condition provided for the image comprises one of i) a text description of the desired style for the image and ii) an attribute set having one or more attributes defining the desired style of the image.
 16. A tangible computer readable medium, or media, storing machine readable instructions that, when executed by one or more processors, cause the one or more processors to: generate an intermediate representation of an image, wherein the intermediate representation captures high-level structure of the image, and wherein the intermediate representation is generated from a random noise sample and without specific condition provided for the image; and generate a conditional image, wherein the conditional image is generated based on i) the intermediate representation of the image and ii) a condition provided for the image, the condition specifying a desired style for the image, such that the conditional image is generated to match i) the high-level structure captured in the intermediate representation of the image and ii) the desired style specified by the condition provided for the image.
 17. The tangible computer readable medium, or media, of claim 16, wherein: the first generator stage comprises an unconditional generative neural network, and the second generator stage comprises a conditional generative neural network.
 18. The tangible computer readable medium, or media, of claim 17, wherein the unconditional generative neural network comprises a structure-prior generative sub-network trained to generate the intermediate representation of the image and an unconditional generative sub-network trained to generate an unconditional image based on the intermediate representation of the image.
 19. The tangible computer-readable medium or media of claim 15, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to train the unconditional generative neural network using an unconditional generative adversarial network (GAN), and train the conditional generative neural network using a conditional generative adversarial network (CGAN).
 20. The tangible computer-readable medium or media of claim 15, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to train the unconditional generative neural network and the conditional generative neural network concurrently using semi-supervised training, wherein the unconditional generative neural network is trained using unpaired data and the conditional generative neural network is trained using paired data. 